/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pokerlan;


/**
 *
 * @author Administrador
 */

/**
 * Esta clase representa al jugador de Poker.
 * Mano es una tabla desde donde se apuntará a las dos cartas que
 * se le repartan en cada partida.
 * La variable jugando tendrá valor true cuando el jugador esté en la partida y
 * false cuando se plante.
 */
public class Jugador {

    private Carta[] mano = new Carta[2];
    private String nombre;
    private int fichas;
    private int posicionMesa;
    private boolean jugando;
    private int valorMano;

    /**
     * Cuando se crea un nuevo jugador se comprueba que la posición en la
     * que se inserta no está ocupado por otro jugador o no es válida.
     * @param nombre Es el nombre del jugador
     * @param fichas Las fichas con las que cuenta
     * @param posicionMesa La posición del jugador en la mesa
     */
    Jugador(String nombre, int fichas, int posicionMesa){
        if(posicionMesa<9 && posicionMesa>=0){
            if(mecanicaJuego.mesa[posicionMesa] == null){
                this.posicionMesa = posicionMesa;
                this.nombre = nombre;
                this.fichas = fichas;
                mecanicaJuego.newPlayer(this, posicionMesa);
                //System.out.println("Nuevo jugador creado");
            }
        }
    }

    /**
     * Se le reparte al jugador dos cartas.
     * @param primeraCarta Primera carta en la mano
     * @param segundaCarta Segunda carta en la mano
     */
    public void nuevaMano(Carta primeraCarta, Carta segundaCarta){
        mano[0] = primeraCarta;
        mano[1] = segundaCarta;
    }

    
    /**
     * Muestra por pantalla el palo y el valor de las cartas del jugador.
     */
    public void mostrarMano(){
        mano[0].muestraCarta();
        mano[1].muestraCarta();
    }

    /**
     * @return Devuelve el número de fichas que tiene el jugador.
     */
    public int mostrarFichas(){
        return fichas;
    }

    /**
     * Resta la cantidad de fichas que se pasen como parámetro.
     * @param fichas Fichas que se restan a las que posee el jugador.
     */
    public void sacarFichas(int fichas){
        this.fichas = this.fichas - fichas;
    }

    public String mostrarNombre(){
        return nombre;
    }

    public Carta[] getCartas(){
        return mano;
    }

    public void plantarse(){
        jugando = false;
    }

    public boolean estado(){
        return jugando;
    }

    public void cobrarFichas(int fichas){
        this.fichas = this.fichas + fichas;
    }
}
